package Day_0219.Redis;

/**
 * @author zxc
 * @date 2023/02/19 14:19
 **/
public class Redis_Durability {
    public static void main(String[] args) {
        /**
         * Redis是如何实现持久性
         * ===》
         * 1.bgsave做镜像全量持久化，aof做增量持久化。
         * （1）因为bgsave会耗费较长时间，不够实时，在停机的时候会导致大量丢失数据，所以需要aof来配合使用。
         * （2）在redis实例重启时，优先使用aof来恢复内存的状态，如果没有aof日志，就会使用rdb文件来恢复。
         *
         * 2.如果再问aof文件过大，恢复时间过长怎么办？
         * （1）Redis会定期做aof重写，压缩aof文件日志大小。
         * （2）Redis4.0之后有了混合持久化的功能，将bgsave的全量和aof的增量做了融合处理，
         *  这样既保证了恢复的效率，又兼顾了数据的安全性。
         *
         * 3.如果对方追问那如果突然机器掉电会怎样？
         * （1）取决于aof日志sync属性的配置，如果不要求性能，在每条写指令时都sync一下磁盘，就不会丢失数据。
         * （2）在高性能的要求下每次都sync是不现实的，一般都使用定时sync，
         *  比如：1s将数据刷新到磁盘，这个时候最多就会丢失1s的数据。
         *
         */
    }
}
